package global

import (
	"github.com/allegro/bigcache/v3"
	jwt "github.com/appleboy/gin-jwt/v2"
	"github.com/casbin/casbin/v2"
	"github.com/go-redis/cache/v8"
	"github.com/go-redis/redis/v8"
	"github.com/go-redsync/redsync/v4"
	"github.com/jordan-wright/email"
	"github.com/juju/ratelimit"
	"github.com/spf13/viper"
	"github.com/streadway/amqp"
	"go.mongodb.org/mongo-driver/mongo"
	"go.uber.org/zap"
	"gorm.io/gorm"
	"gspeed/bootstrap/modules/container"
)

var (
	Config     *viper.Viper
	DB         *gorm.DB
	GinJwt     *jwt.GinJWTMiddleware
	Redis      *redis.Client
	RedisCache *cache.Cache
	Redsync    *redsync.Redsync
	LocalCache *bigcache.BigCache
	Auth       *casbin.Enforcer
	RateLimit  *ratelimit.Bucket
	Email      *email.Pool
	Logger     *zap.SugaredLogger
	RabbitMQ   *amqp.Connection
	Container  *container.Containers
	MongoDB    *mongo.Client
)
